DFT Compiler

概念解析

定义与起源

术语定义:DFT Compiler是Synopsys的DFT综合工具——在RTL综合阶段自动插入扫描链、测试压缩逻辑、边界扫描等DFT结构。它与Design Compiler共享综合引擎,可以在综合的同时完成DFT插入——不需要单独的DFT插入步骤。

DFT Compiler的前身是BSD Compiler(1990s)。2000年代随着SoC复杂度爆炸,独立的DFT插入流程成为瓶颈——综合和DFT分离意味着两个工具维护两份网表、两次时序收敛。DFT Compiler将DFT插入融合进综合流程,在单次综合中同时完成功能逻辑综合和DFT结构插入。

核心要义

第一,DFT Compiler=综合+DFT一步到位。 传统流程:综合→导出网表→DFT插入→重新综合ECO。DFT Compiler的融合流程:综合时同步插入扫描链——扫描触发器替换、扫描链连接、压缩逻辑插入在一次综合中完成。关键好处:时序在综合时就把扫描链的MUX延迟考虑进去了,不会出现"DFT插入后时序恶化"的经典问题。

第二,自适应压缩(Adaptive Compression)是DFT Compiler的核心技术。 不是所有扫描链都需要相同的压缩比。DFT Compiler分析每条扫描链的长度、翻转率、测试时间约束——对长链用高压缩比(100x),对短链用低压缩比(10x),对关键路径上的链不压缩。自适应压缩比固定压缩节省30-50%的测试数据量。

第三,DFT Compiler与TetraMAX ATPG深度耦合。 DFT Compiler插入的扫描结构信息直接传给TetraMAX——不需要网表导出再导入。TetraMAX在生成ATPG向量时可以利用DFT Compiler的物理信息(扫描链走线长度、buffer位置)优化测试功耗和速度。

实践应用

* scan configuration是核心配置:每条扫描链多长、包含哪些触发器、压缩结构类型——在DFT Compiler中用TCL脚本配置。 * test point insertion需手动决策:DFT Compiler可以自动建议测试点位置,但最终插不插、插多少——需要DFT工程师判断。 * 与SpyGlass DFT协同:先用SpyGlass DFT做RTL级DFT检查→修复DFT违规→DFT Compiler做门级DFT插入——两个工具互补。

实战案例

- 某GPU的DFT Compiler自适应压缩:传统固定压缩比100x导致短扫描链上压缩逻辑面积浪费。改用自适应压缩后,短链10x、长链100x——总面积节省15%,测试数据量仅增加5%。 - DFT Compiler融合流程救回2周schedule:某5G芯片综合→DFT→ECO循环跑了5轮还没收敛。改用DFT Compiler融合流程——综合+DFT一步完成,时序在插入扫描链时就被考虑了——2轮收敛,省了2周。 - TetraMAX+DFT Compiler联合优化测试功耗:某AI芯片测试时shift功耗过大(扫描链移位时280%功能功耗)。DFT Compiler重新配置扫描链——把高翻转率触发器分散到不同链、关键链加gating——测试功耗降到120%功能功耗。

原话引用

> "DFT Compiler把DFT从'综合后'变成了'综合中'——这是DFT流程最大的效率提升。"—— Synopsys DFT Compiler白皮书, 2018 > "Adaptive compression is the difference between fitting your test vectors on the ATE or buying a bigger ATE."—— SNUG San Jose 2019 > "DFT Compiler不是为了替代DFT工程师——是为了让DFT工程师不用把时间花在手工插扫描链上。"—— SNUG India 2020

常见误区

误区一:DFT Compiler=Design Compiler的DFT版本。 DFT Compiler与DC共享引擎但不是同一个工具。DC做功能综合,DFT Compiler在DC综合的基础上叠加DFT结构。如果已经用了DC,加DFT Compiler几乎不需要额外学习成本。

误区二:DFT Compiler自动配置就是最优配置。 自适应算法给的是"默认最优"——不是"全局最优"。不同芯片的测试需求不同(汽车芯片需要更高覆盖率、手机芯片需要更低功耗)。DFT工程师需要在自动配置基础上手动调优。

误区三:DFT Compiler只在tape-out前跑一次。 DFT插入后每次ECO都会影响扫描链——需要增量DFT Compiler重跑。好的DFT Compiler flow支持增量更新——只重跑变化的module。

思想演变

- 1990s:BSD Compiler时代:独立的DFT插入工具。综合和DFT分离——两套网表、两次时序收敛。 - 2000s:DFT Compiler 1.0:融合进DC综合引擎。扫描链插入和综合一步完成。 - 2010s:自适应压缩:分析扫描链特性自动选择压缩比。与TetraMAX深度耦合。 - 2020s:AI辅助DFT配置:ML模型预测最优扫描链长度和压缩比。DFT Compiler从"配置工具"走向"优化引擎"。

相关论文

- 自定义片上时钟控制器和扫描压缩插入的全层次化流程用于At-Speed测试 - 复杂 SoC 上的小延迟缺陷实验 - 在复杂 VLSI 上使用 Synopsys Galaxy 流程进行可测试性设计插入 - 定制片上时钟控制器与扫描压缩插入的全层次化At-Speed测试流程 - 面向百万门级设计的多压缩器实现方案 - 层次化设计流程中的布局规划与版图优化:案例研究 - 实现SOC高测试覆盖率的策略 - 使用DFT处理OCC片上时钟控制 - 实现 SoC 高测试覆盖率的策略 - DFT MAX 扫描压缩流程经验 - UMC-Synopsys 65nm低功耗UPF参考设计流程 - 打破层次规则:面向 5 百万触发器设计的高级层次化 DFT 策略 - 混合信号设计中碎片化数字模块的DFT方案 - 应用 DFT Compiler 核心封装技术控制数模接口 - Socionext UPF设计流程的演进——Socionext与Synopsys的成功合作 - 使用SpyGlass RTL DFT检查减少设计周转时间和测试ECO - 测试点决胜局——覆盖率、成本与QoR的DFT帽子戏法 - 基于Spyglass的DFT检查 - 在高度受限环境中同时使用DFTMAX与异步和同步片上时钟控制器(OCC)的用户经验 - 使用 Synopsys OCC 进行标准单元和 IP 的可靠硅验证 - DFTMAX Ultra:面向小型数字混合信号器件 - DFTMAX Ultra为嵌入测试模式控制器的超低引脚数设计实现高测试覆盖率 - 面向小型数字混合信号器件的DFTMAX Ultra方案 - 基于DFTMAX-Ultra实现低引脚数、低成本、低功耗DFT设计 - 在复杂 ASIC 上使用 DFTMAX Shared IO 的用户经验 - 按时达成测试质量和成本目标 - 提高SpyGlass DFT测试点精度的技巧